package com.sky.service;

import com.sky.dto.VisaMaterialRequirementDTO;
import com.sky.dto.VisaMaterialRequirementPageQueryDTO;
import com.sky.entity.VisaMaterialRequirement;
import com.sky.result.PageResult;

import java.util.List;

public interface VisaMaterialRequirementService {
    /**
     * 新增签证材料要求
     * @param visaMaterialRequirementDTO
     */
    void insert(VisaMaterialRequirementDTO visaMaterialRequirementDTO);

    /**
     * 修改签证材料要求
     * @param visaMaterialRequirementDTO
     */
    void update(VisaMaterialRequirementDTO visaMaterialRequirementDTO);

    /**
     * 删除签证材料要求
     * @param id
     */
    void delete(Long id);

    /**
     * 分页查询签证材料要求
     * @param visaMaterialRequirementPageQueryDTO
     * @return
     */
    PageResult page(VisaMaterialRequirementPageQueryDTO visaMaterialRequirementPageQueryDTO);

    /**
     * 根据ID查询签证材料要求
     * @param id
     * @return
     */
    VisaMaterialRequirement selectById(Long id);

    /**
     * 根据产品名称查询签证材料要求列表
     * @param productName
     * @return
     */
    List<VisaMaterialRequirement> selectByProductName(String productName);

    /**
     * 根据产品名称和用户类型查询签证材料要求列表
     * @param productName
     * @param userType
     * @return
     */
    List<VisaMaterialRequirement> selectByProductNameAndUserType(String productName, String userType);

    /**
     * 根据产品ID查询签证材料要求列表
     * @param productId
     * @return
     */
    List<VisaMaterialRequirement> selectByProductId(Long productId);

    /**
     * 根据产品ID和用户类型查询签证材料要求列表
     * @param productId
     * @param userType
     * @return
     */
    List<VisaMaterialRequirement> selectByProductIdAndUserType(Long productId, String userType);
}
